This invention relates, in general, to backing out components in a computing environment, and in particular, to backing out a component operating in a compatibility mode while maintaining availability of the computing environment.
In a distributed computing environment, individual computing units or nodes are interconnected via a network to form a cluster. By connecting the nodes in this manner, the individual nodes may communicate with one another to accomplish a single task or process a unit of work distributed among the individual computing units. One way to accomplish such a task is to run multiple images of a single program or component on several of the individual nodes. By concurrently running the images on individual nodes, different portions of the unit of work may be jointly processed at the same time. Distributing the unit of work between multiple components in this manner allows the task or unit of work to be more effectively processed.
From time to time, the program being processed by the individual components is required to be updated from a current version to a newer version in order to enhance the functionality or to address problems associated with the current version of the program. One technique for performing these updates or migrations is to first shut down all of the nodes of the system. After all of the nodes have been deactivated, the current version of the component is updated on each of the nodes. Then, after all of the components have been migrated, the nodes are reactivated running the newer version of the program. However, since the entire system must be deactivated while the individual components are updated, this method is unacceptably disruptive with continuous availability or mission critical systems running twenty-four hours a day.
In the alternative, another technique allows components within the computing environment to be migrated or updated individually. In this technique, the selected component is deactivated, updated and later reactivated within the cluster without having to deactivate the entire cluster. However, with this technique, a user must consciously be aware of utilizing only the functionality supported by older version components. Thus, because a user must actively be aware of limitations of nodes running the older versions of the component, this method proves to be unduly burdensome to the users of the system.
Thus, a need exists for a capability that allows upgrading or migrating of individual components in a computing environment which does not require the entire cluster to be deactivated. Furthermore, a need exists for a capability which does not require a user to be consciously aware of the limitations of the older version components.
A further need exists for backing out components before the entire cluster has been updated without disturbing the availability of the system.
The shortcomings of the prior art are overcome and additional advantages are provided through the provision of a computing environment component backing out capability. In one embodiment, a method of backing out components in the computing environment includes determining a component of said computing environment to be backed out from one version to a version different from said one version, wherein said component is capable of emulating another version being executed by at least one other component of said computing environment, and wherein said component and said at least one other component are associated with at least a portion of a unit of work; and backing said component out from said one version to said version different from said one version.
In another aspect, a system for backing out components in a computing environment is provided. The system includes means for determining a component of said computing environment to be backed out from one version to a version different from said one version, wherein said component is capable of emulating another version being executed by at least one other component of said computing environment, and wherein said component and said at least one other component are associated with at least a portion of a unit of work; and means for backing said component out from said one version to said version different from said one version.
In yet another aspect of the present invention, another system for backing out components in a computing environment is provided. The system includes a computing node adapted to determine a component of said computing environment to be backed out from one version to a version different from said one version, wherein said component is capable of emulating another version being executed by at least one other component of said computing environment, and wherein said component and said at least one other component are associated with at least a portion,of a unit of work; and said computing node being further adapted to back said component out from said one version to said version different from said one version.
In yet another aspect of the present invention, an article of manufacture including at least one computer usable medium having computer readable program code means embodied therein for causing the backing out of components in a computing environment is disclosed. The computer readable program code means in the article of manufacture includes, for instance, at least one computer usable medium having computer readable program code means embodied therein for backing out components in a computing environment, the computer readable program code means in said article of manufacture comprising computer readable program code means for determining a component of said computing environment to be backed out from one version to a version different from said one version, wherein said component is capable of emulating another version being executed by at least one other component of said computing environment, and wherein said component and said at least one other component are associated with at least a portion of a unit of work; and computer readable program code means for backing said component out from said one version to said version different from said one version.
Thus, in accordance with one aspect of the present invention, presented herein is a backing-out capability in which a component of a computing environment is backed out to an older version while maintaining the availability of the computing environment. More specifically, a component may be backed out from a newer version to either the cluster version or to an intermediate version. In the latter case, the backed out component operates in a compatibility mode with the cluster version.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.